package com.gpframework.module.order.service;

import com.gpframework.module.order.domain.GpFlowConfig;
import com.gpframework.module.order.domain.vo.GpFlowConfigVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.List;
/**
 * @ClassName GpFlowConfig
 * @Author gpframework
 * @Date 2023-06-16
 * @Version 1.0.0
 * @Description 流转节点配置Service接口
 */
public interface IGpFlowConfigService extends IService<GpFlowConfig> {

    /**
     * @Description 查询列表返回VO 用于返回给前端的列表接口
     * @Author gpframework
     * @Date 2023-06-16
     * @Param [lqw]
     * @Return List<GpFlowConfigVo>
     */
    List<GpFlowConfigVo> listVo(QueryWrapper<GpFlowConfig> lqw);

    /**
     * @Description 通过查询详情VO 用于返回给前端的列详情接口
     * @Author gpframework
     * @Date 2023-06-16
     * @Param [id]
     * @Return GpFlowConfigVo
     */
    GpFlowConfigVo getVoById(Long id);

    /**
     * 查看用户可操作的订单状态
     * @param userId
     * @return
     */
    List<Long>  getOrderStatusByUserId(Long userId);

    /**
     * 获取下一个流转节点
     * @param orderStatus
     * @return
     */
    GpFlowConfig getByOrderStatus(String orderStatus);
}
